home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / SOFTROCK / DEMOS / CRYSTAL.ARC / !Crystal / Adventure / Script < prev    next >
Text File  |  1996-01-27  |  12KB  |  288 lines

  1. The Purple Crystal of the Heavens
  2. Archimedes Version
  3. (c)1991/4 Soft Rock Software
  4.  
  5. REM *********** section 1: initialisation **********
  6.  
  7. LET Store%(0)=0
  8. LET Store%(1)=100
  9. LET Store%(3)=9
  10. LET Store%(21)=0
  11. LET Store%(22)=-1
  12. LET Store%(23)=0
  13. LET Store%(24)=0
  14. LET Store%(25)=0
  15.  
  16. REM *********** section 2: describe location *******
  17.  
  18. :movement_loop
  19. CLS
  20. LOOK
  21.  
  22. REM *********** section 3: Conditions 1 ************
  23.  
  24. IF Store%(3)>=78 OR Store%(3)=17 THEN GOTO player_dead
  25.  
  26. IF Store%(3)=44 AND Store%(0)=1 THEN
  27.  LET Store%(0)=0
  28.  LET Location%(9)=-1
  29.  PRINT"The serpent's eye suddenly turns to dust and disperses when a sudden gust of wind blows through the cave."
  30. END IF
  31.  
  32. IF Store%(3)=45 AND Location%(9)=0 AND Store%(0)=0 THEN
  33.  LET Store%(0)=1
  34.  PRINT"The serpent's eye that you have been carrying suddenly begins to glow, providing enough light for you to see by in the cave."
  35. END IF
  36.  
  37. IF Store%(3)=5 AND Store%(21)=0 THEN
  38.  PRINT " A giant eagle swoops down and attacks you. It's claws are sharp, and the bird grabs at your head with them."
  39.  LET Store%(21)=1
  40. END IF
  41.  
  42. IF (Moved%) AND (Store%(3)=57 OR Store%(3)=58) THEN
  43.  PRINT " The passage through which you just came suddenly collapses, filling the air with dust and blocking your exit in that direction."
  44.  LET Room$(Store%(3))="You are in a small cavern. The passage you came through, to the East, is blocked and there is no other visible means of escape."
  45.  LET Room$(Store%(3))=Room$(Store%(3))+" Water drips from a point somewhere above you, forming a pool at your feet. Given time, this will fill the cavern."
  46.  LET Store%(24)=0
  47.  LET West%(Store%(3)-4)=0
  48. END IF
  49.  
  50. REM *********** section 4: Player Input ************
  51.  
  52. :input_loop
  53.  
  54. IF (Store%(24)=6) AND (Store%(3)=57 OR Store%(3)=58) THEN
  55.  PRINT"The area around the roof of the cave where the water is leaking in is weak. It crumbles away, and the water starts to come in more rapidly. As it does so, the rock gives way a little more, and the water comes in faster still."'
  56.  LET Room$(Store%(3))="You are in a small cavern, from which there is no other visible means of escape."
  57.  LET Room$(Store%(3))=Room$(Store%(3))+" Water pours in through a gaping hole above you, forming a pool in which you now stand. It won't be long before this fills the cavern."
  58. END IF
  59.  
  60. IF (Store%(24)=8) AND (Store%(3)=57 OR Store%(3)=58) THEN
  61.  PRINT"The area around the roof of the cave where the water is coming in collapses still further, and the water starts to pour in much more rapidly. The rock gives way a little more, and the water comes in faster still."'
  62.  LET Room$(Store%(3))="You are in a small cavern, from which there is no other visible means of escape."
  63.  LET Room$(Store%(3))=Room$(Store%(3))+" Water pours rapidly in through a gaping hole above you, forming a pool in which you now float. The cavern will very soon be filled."
  64. END IF
  65.  
  66. PRINT'
  67. INPUT
  68. IF FNSaid("QUIT") THEN
  69.  QUIT
  70.  GOTO input_loop
  71. END IF
  72.  
  73. REM *********** section 5: Conditions 2 ************
  74.  
  75. IF Store%(3)=58 OR Store%(3)=57 THEN LET Store%(24)=Store%(24)+1
  76.  
  77.  
  78.  
  79.  
  80. IF (Store%(24)=10) AND (Store%(3)=57) THEN
  81.  PRINT"The water becomes too deep. There is no space above the surface for you to be able to hold your head up in order to breathe. You drown..."'
  82.  GOTO player_dead
  83. END IF
  84.  
  85. IF (Store%(24)=10) AND (Store%(3)=58) THEN
  86.  PRINT"The weight of the water causes the floor below you to collapse, and you fall through into another, smaller, cave that was previously below you. The water continues to pour through and runs down the slope rapidly, deeper into the "
  87.  PRINT"cave system."
  88.  LET Store%(3)=73
  89.  GOTO input_loop
  90. END IF
  91.  
  92. IF (Store%(3)=5 AND Store%(21)=1) THEN
  93.  IF (NOT FNSaid("FIGHT")) AND (NOT FNSaid("EAGLE")) THEN GOTO player_dead
  94.  IF Location%(3)<>0 THEN GOTO player_dead
  95.  PRINT"Using your cutlass you are able to injure the bird. Defeated, it flies off to the South."
  96.  LET Store%(21)=2
  97.  GOTO input_loop
  98. END IF           
  99.  
  100. REM ********** Section 6: Act on Input ********
  101.  
  102. IF FNSaid("NORTH") OR FNSaid("EAST") THEN GOTO do_command
  103. IF FNSaid("SOUTH") OR FNSaid("WEST") THEN GOTO do_command
  104. IF FNSaid("DOWN") OR FNSaid("INV") THEN GOTO do_command
  105. IF FNSaid("HELP") THEN GOTO help
  106.  
  107. IF FNSaid("WAIT") THEN
  108.  PRINT"Okay."'
  109.  GOTO input_loop
  110. END IF
  111.  
  112. IF FNSaid("LIGHT") AND FNSaid("WOODPILE") AND Store%(3)=9 THEN
  113.  IF Location%(4)<>0 THEN GOTO you_cant
  114.  PRINT"Using the flint, you are able to ignite the woodpile and start a signal fire. After a short while, you can see a small rowing boat approaching the shore from the direction of your ship. There are four men on board. "
  115.  PRINT"They soon reach the shore, and approach you. One of the men is the captain."'
  116.  IF Location%(8)<>0 THEN GOTO player_dead
  117.  PRINT"His face lights up with joy when he sees that you are carrying the Purple Crystal of the Heavens...."''''"Congratulations, you have completed the game!"'''
  118.  RESTART
  119. END IF
  120.  
  121.  
  122.  
  123. IF (FNSaid("PUSH") AND FNSaid("BOULDER")) AND Store%(25)=0 THEN
  124.  IF Store%(3)<>76 THEN GOTO you_cant
  125.  PRINT"You push the boulder with all your strength, and eventually an passage South is revealed."
  126.  LET Store%(25)=1
  127.  LET South%(76)=45
  128.  LET North%(45)=76
  129.  LET Examine$(11)="The boulder is pressed up against the South wall of the cave"
  130. END IF
  131.  
  132. IF (FNSaid("PUSH") AND FNSaid("BOULDER")) AND Store%(25)=1 THEN
  133.  IF Store%(3)<>76 THEN GOTO you_cant
  134.  PRINT"You push the boulder with all your strength, and eventually manage to block the passage South, since that is the only way the boulder can move."
  135.  LET Store%(25)=0
  136.  LET South%(76)=0
  137.  LET North%(45)=0
  138.  LET Examine$(11)="The boulder is pressed up against the South wall of the cave, and appears to be blocking a potential exit."
  139. END IF
  140.  
  141.  
  142. IF FNSaid("UP") AND Store%(3)=63 THEN
  143.  PRINT"The side of the cave is a very smooth rock face - too smooth to climb."
  144.  GOTO input_loop
  145. END IF
  146. IF FNSaid("UP") THEN GOTO do_command
  147.  
  148. IF FNSaid("OPEN") AND FNSaid("CHEST") THEN
  149.  IF Store%(23)=1 THEN GOTO you_cant
  150.  PRINT"As you open the chest the lid, which is rotten, falls apart in your hands. Inside you see a flint, a cutlass and a map."
  151.  LET List$(1)="an open chest"
  152.  LET Examine$(1)=Examine$(1)+" There is no lid, as this appears to have fallen apart."
  153.  LET Location%(3)=Store%(3)
  154.  LET Location%(4)=Store%(3)
  155.  LET Location%(5)=Store%(3)
  156.  LET Store%(23)=1
  157.  GOTO input_loop
  158. END IF
  159.  
  160. IF FNSaid("GET") AND FNSaid("WOODPILE") AND Location%(2)=Store%(3) THEN GOTO you_cant
  161.  
  162. IF FNSaid("SWIM") THEN
  163.  LET Store%(3)=78
  164.  GOTO movement_loop
  165. END IF
  166.  
  167. IF Store%(3)=9 AND FNSaid("READ") AND (FNSaid("PLATE") OR FNSaid("CHEST") OR FNSaid("WRIT")) THEN
  168.  PRINT "The plate on the chest's side reads 'The Stormy Sea'"
  169.  GOTO input_loop
  170. END IF
  171.  
  172. IF (FNSaid("READ") OR FNSaid("EXAMINE")) AND FNSaid("MAP") AND (Location%(5)=0 OR Location%(5)=Store%(3)) THEN
  173.  EXAMINE MAP
  174.  LET Location%(5)=-1
  175.  PRINT "A sudden gust of strong wind takes the map and you watch helplessly as it flies into the distance. The wind almost seems to whisper to you, seemingly saying 'Leave.'"
  176.  GOTO input_loop
  177. END IF
  178.  
  179. IF FNSaid("GET") AND FNSaid("EGG") AND Location%(6)=Store%(3) THEN
  180.  PRINT"As you lift the egg, it starts to crumble. The shell is old and weak. It crumbles further and soon becomes nothing more than dust, which the wind disperses."
  181.  LET Location%(6)=-1
  182.  GOTO input_loop
  183. END IF          
  184.  
  185. IF FNSaid("EXAMINE") AND FNSaid("EGG") AND Location%(6)=Store%(3) THEN
  186.  EXAMINE EGG
  187.  LET Location%(6)=-1
  188.  GOTO input_loop
  189. END IF
  190.  
  191. IF Store%(3)<>40 THEN GOTO not_with_serpent
  192.  IF FNSaid("LOOK") AND Store%(22)=-1 THEN
  193.   PRINT'"You move around, trying to see what lies between and behind the rocks. As you round the largest rock, a huge serpent stands to it's full height and hisses at you."'
  194.   LET Store%(22)=0
  195.   LET Location%(10)=40
  196.   GOTO input_loop
  197.  END IF
  198.  
  199.  IF FNSaid("DROP") AND FNSaid("APPLE") AND FNSaid("SERPENT") AND Location%(7)=0 AND Store%(22)=0 THEN
  200.   PRINT'"The fruit lands near the serpent, who looks at it suspiciously."'"After a moment, the creature picks it up and eats it."''"Soon after this, the creature starts to stagger about, seemingly weakened - the fruit must have been poisonous."'
  201.   LET Store%(22)=1
  202.   LET Location%(7)=-1
  203.   GOTO input_loop 
  204.  END IF          
  205.  
  206.  IF FNSaid("FIGHT") AND FNSaid("SERPENT") AND Store%(22)=1 AND Location%(3)=0 THEN 
  207.   PRINT"You attack the serpent. In it's weakened state it is no match for you and you are able to kill it quickly and easily."'"As it falls to the ground, you are amazed as the remains seem to disappear and just a single eye remains."'
  208.   LET Location%(10)=-1
  209.   LET Location%(9)=40
  210.   LET Store%(22)=2
  211.   GOTO input_loop
  212.  END IF
  213.                  
  214.  IF FNSaid("FIGHT") AND FNSaid("SERPENT") AND Store%(22)=1 AND Location%(3)<>0 THEN
  215.   PRINT"You attack the creature, but you are unarmed and, even in it's weakened state, you are no match for it...."
  216.   GOTO player_dead
  217.  END IF
  218.  
  219.  IF FNSaid("FIGHT") AND FNSaid("SERPENT") AND Store%(22)=0 THEN
  220.   PRINT"You attack the creature. When you discover how strong it is, you realise this was a foolish move. You are no match for the serpent..."
  221.   GOTO player_dead
  222.  END IF
  223. :not_with_serpent
  224.  
  225.   
  226.  
  227.  
  228.   
  229.  
  230.  
  231.  
  232.  
  233. :do_command
  234. COMMAND
  235.  
  236. REM *********** Section 7: Loop *******
  237. IF Moved% THEN GOTO movement_loop
  238. GOTO input_loop
  239.  
  240. REM *********** Section 8: RISC OS ****
  241.  
  242. :win_game
  243. PRINT''"Congratulations. You have completed the game."'''
  244. RESTART
  245.  
  246. :end_game
  247. PRINT''"Hard luck. You have lost the game."'''
  248. RESTART
  249.  
  250. REM *********** Section 9: routines **
  251.  
  252. :you_cant
  253. PRINT"You can't do that."
  254. GOTO input_loop
  255.  
  256. :player_dead
  257. IF Store%(3)=78 THEN PRINT'"With horror, you remember that these are shark infested waters. Desperately you try to swim to the shore, but feel something bite into your leg. The water around you turns red, and you feel another bite..."
  258.  
  259. IF Store%(3)=79 OR Store%(3)=81 OR Store%(3)=82 THEN PRINT'"As you stretch for a suitable grip, the rock breaks away in your fingers and you slip. Holding on with your other hand, you try hard to retain your balance."'"Unsuccessfully."'"You fall..."
  260.  
  261. IF Store%(3)=79 OR Store%(3)=81 OR Store%(3)=80 THEN
  262.  PRINT'"You slip and slide your way down the rock face at first, but strike an outcrop of rock after a very short way. This causes you to twist awkwardly, and you hit the rocks at the foot of the cliff on your back..."
  263.  PRINT'"Dazed, you look up at the cliff top high above. 'I'm alive' you think, but trying to move you feel a sudden and immense wave of pain. You've broken just about every bone in your body..."
  264. END IF
  265.  
  266. IF Store%(3)=82 OR Store%(3)=83 THEN
  267.  PRINT'"You slip and slide your way down the smooth rock face at first, then the cliff seems to move away from you rapidly - you were on a massive overhang. Twisting as you fall you are able to turn your descent into a dive."
  268.  PRINT" You hit the water with a splash..."'
  269.  PRINT'"As you look around you, a dorsal fin breaks the surface. Then another, and another."'
  270.  LET Store%(3)=78
  271.  GOTO player_dead
  272. END IF
  273.  
  274. IF Store%(3)=5 THEN PRINT'"The bird swoops in again and again. You can't react fast enough, and it's attack is successful. As it claws at you repeatedly, you begin to feel weaker and weaker. You are losing blood fast...."
  275.  
  276. IF Store%(3)=9 THEN
  277.  PRINT"He can see that you do not have the Purple Crystal of the Heavens. 'Get him!' he snarls, as he draws his cutlass. The other men rush forward and, before you can react, take a hold of you. "
  278.  PRINT"They force you to your knees, and force your head forward. The captain raises his weapon high in the air. 'You have failed me' he says angrily...."''''
  279. END IF
  280.  
  281. RESTART
  282.  
  283. :help
  284. PRINT"The only help I can give you is to aid mapping, by telling you that you are in location "[Store%(3)]'
  285. GOTO input_loop
  286.  
  287. STOP
  288.